package Tests;

import java.util.Vector;

import junit.framework.TestCase;

import server.GestoreGioco;
import server.ambienteGioco.Mappa;
import server.dinosauri.Erbivoro;

public class TestVisualeDinosauro extends TestCase {
	private Mappa map;

	public void setUp() {
		GestoreGioco.instance(1999);
		map = Mappa.instance("Mappa.txt");
	}

	public void testPosizionaDinosauro() {
		// inserendo i costruttori vuoti(come test) in Erbivoro, Carnivoro, Dinosauro il metodo funziona
		Erbivoro erb = new Erbivoro(); 
		//Carnivoro carn = new Carnivoro();

		System.out.println(erb.getZona());
		//	System.out.println(carn.getZona());

		//assertNotNull(GestoreGioco.posizionaDinosauro(erb));
		//assertNotNull(GestoreGioco.posizionaDinosauro(carn));
		erb.setDimensione(5);
		//  carn.setDimensione(3);

		System.out.println(erb.getCampoVisivo());
		//System.out.println(carn.getCampoVisivo());
		Vector<Integer>  a = new Vector<Integer>();
		a = map.visualeDinosauro(erb);
		System.out.println("->"+map.hashL(map.righeXcolonne(a)));
		System.out.println("->"+map.hashA(map.righeXcolonne(a)));
		for(int i=0; i<a.size(); i++) {
			System.out.print(map.hashL(a.get(i)) +";");
			System.out.print(map.hashA(a.get(i)) );
			System.out.print("/" );
		}

		int number=0;
		for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++)
			for(int j=0; j<Mappa.LARGHEZZA_MAPPA; j++)
				if(map.getDinosauroAt(i, j) == erb)
					number = map.hash(i,j); 
		
		System.out.println(" ");
		System.out.println(map.hashL(number));
		System.out.println(map.hashA(number));
		for(int i=0; i<Mappa.LARGHEZZA_MAPPA; i++){
			for(int j=0; j<Mappa.LARGHEZZA_MAPPA; j++){
				if(map.hash(i,j)==number)
					System.out.print("?");
				else {
					if(a.contains(map.hash(i,j)))
						System.out.print("X");
					if(!(a.contains(map.hash(i,j))))
						System.out.print("O");
				}
			}
			System.out.println("");
		}
	}
}
